first pass at method implementation