start on implementing Data.List