added new final functionality