add features and clean code