Initial checkin of fleshed out library