Added much functionallity