more configuration, less hard code