Separated .hpp files into .h and .cpp files