abstractify!