finished the features functions