Separated definitions from implementations