defining methods and stufff