refactor to my style