Added something similar to a maybe monad; time for some proper cleaning!