refactor names and added more less structure