Split the whole thing into modules
add a status command