Long overdue update, extendibility added