Revised class struture