added os abstraction, house keeping