basically done
finished basic implementation