to complete, refactoring
refactor + formatting