Define and if working!  But I don't think I like the implementation very much.