basic ls implementation