Second draft of api component