separated class in files to improve code readability