Updated with most recent features