this is for learning purpuoses