moved more logic into the facade