outline for possible methods