annotation interface and some other stuff