add better method documentation