added more functional stuff