added and tested final