alle methods implemented