Refactoring + Better handling of null values + Extracted services to interfaces