restructorizing again
adding first Interfaces