form base class

todo: leavable