Problem solving and design methodology