some basics implemented