includes basic functionality