separate classes for 2D and 3D points
moved script to main() function
linted