refactored deposit interface