BSServer implementation

ignore the linked list definition at the beginning, will most likely not
use