lets start interacting and abstracting!