separated user methods from low-level processes