implementation code seperated from class