added more functions & classes