with methods