refactored, uses lib-user now