this is the difficult way