First version, supports basic options