initial customization/refactor