abstract molecular design