refactored the features to an arraylist