components, based on CornerJS