basics work now to corner cases