refactored photomanager hierarchy