abstract constructions