complete except config and logic