Separated into .h and .cpp