questionable implementation
