Final version all features added