basic functional implemented.