Added basic for implmenetation + enhanced one (stil buggy)