finishing touches. Now has all features