added interface and some basic code...