added functional classes