abstract mechanical design