More refactoring. Making the implemnentation independent of object and intentions