updated with couple of useful public methods