finish refactor on customer features