moved reference classes to a separate file, shadowed appropriate methods to make them private