rewrote as module, added setter and getter