works on implementing more main methods