begin adding documentation and testing