basic commands framework